/*******************************************************************************
* Copyright (c) 2000, 2017 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Jeanderson Candido <http://jeandersonbc.github.io> - Bug 433608
*******************************************************************************/
package org.eclipse.jface.tests.wizards;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
public class TheTestWizardPage extends WizardPage {
public static final String BAD_TEXT_FIELD_CONTENTS = "BAD VALUE";
public static final String BAD_TEXT_FIELD_STATUS = "A bad value was entered";
public static final String GOOD_TEXT_FIELD_CONTENTS = "GOOD VALUE";
public Text textInputField;
private boolean throwExceptionOnDispose;
public TheTestWizardPage(String name) {
super(name);
}
@Override
public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
layout.verticalSpacing = 9;
Label label = new Label(container, SWT.NULL);
label.setText(getName());
textInputField = new Text(container, SWT.BORDER | SWT.SINGLE);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
textInputField.setLayoutData(gd);
textInputField.addModifyListener(e -> dialogChanged());
initialize();
dialogChanged();
setControl(container);
}
private void initialize() {}
/**
* Handle dialog values changing
*/
private void dialogChanged() {
if (textInputField.getText().equals(BAD_TEXT_FIELD_CONTENTS)) {
setPageComplete(false);
updateStatus(BAD_TEXT_FIELD_STATUS);
return;
}
//any other value, including no value, is good
setPageComplete(true);
updateStatus(null);
}
private void updateStatus(String message) {
setErrorMessage(message);
setPageComplete(message == null);
}
/**
* @param throwExceptionOnDispose The throwExceptionOnDispose to set.
*/
public void setThrowExceptionOnDispose(boolean throwExceptionOnDispose) {
this.throwExceptionOnDispose = throwExceptionOnDispose;
}
@Override
public void dispose() {
super.dispose();
if(throwExceptionOnDispose) {
throw new NullPointerException();
}
}
}